
// 生成vscode 的快捷文件
// 被生成文件 放入 template 生成后的文件在 outPath
const fs = require('fs')
let path = require('path')
const paths = '/template';//目录路径
const outPath = __dirname + "../../../.vscode/";// 导出目录路径
// 自动处理目录
const checkDirectory = (dir) => {
        var dirname =dir // path.dirname(dir+'/'); // 获取文件的目录
        const isAccess = fs.existsSync(dirname)   // 判断是否存在目录
        console.log('当前检查目录'+dirname)
        console.log('是否存在目录：'+isAccess)
        if (!isAccess) {
            fs.mkdirSync(dirname, { recursive: true });// 自动创建多层目录  recursive:true 多层
        }
}
checkDirectory(outPath)

let files = fs.readdirSync(__dirname + paths, function (err, files) {
    if (err) {
        console.error('读取目录出错：', err);
        return;
    }
});


files = files.filter(v => {
    const arr = v.split('.')
    console.log(arr)
    return arr[arr.length - 1] == 'vue'
})
console.log('读取到的文件列表:', files);

const generate = (name) => {
    const data = fs.readFileSync(__dirname + '/template/' + name, 'utf8')
    const arr = data.split('\r\n')

    const names = name.split('.')[0]
    const obj = {
        "Print to console": {
            "prefix": names,
            body: arr,
            "description": "vue3 快速生成代码块"
        }
    }

    const str = JSON.stringify(obj, "", "\t")

    fs.writeFile(outPath +'/'+ names + '.code-snippets', str, function (err) {
        if (err) {
            return console.log('文件写入失败！' + err.message)
        }
        console.log('文件写入成功！')
    })
}

files.forEach(item => {

    generate(item)
})






